﻿Imports Utilitario
Public Class frmImpresionDocumento

    Dim tipo As String = ""
    Dim codigoPedido As String = ""
    Dim ruc As String = ""
    Dim codigoCliente As String = ""
    Dim nombreCliente As String = ""
    Dim condicionVenta As String = ""
    Dim fecha As String = ""
    Dim marca As String = ""
    Dim moneda As String = ""
    Dim agencia As String = ""
    Dim observaciones As String = ""
    Dim direccion As String = ""
    Dim ds As dsDetalle = Nothing
    Dim neto As Decimal = 0
    Dim igv As Decimal = 0
    Dim percepcion As Decimal = 0

    Sub New(tip As String, codPedido As String, ruc As String, codCliente As String, nomCliente As String, condVenta As String, fecha As String, marca As String, moneda As String, agencia As String, observacion As String, direccion As String, neto As Decimal, igv As Decimal, percepcion As Decimal, dt As dsDetalle)

        ' Llamada necesaria para el diseñador.
        InitializeComponent()

        ' Agregue cualquier inicialización después de la llamada a InitializeComponent().
        Me.tipo = tip
        Me.codigoPedido = codPedido
        Me.ruc = ruc
        Me.codigoCliente = codCliente
        Me.nombreCliente = nomCliente
        Me.condicionVenta = condVenta
        Me.fecha = fecha
        Me.marca = marca
        Me.moneda = moneda
        Me.agencia = agencia
        Me.observaciones = observacion
        Me.direccion = direccion

        Me.neto = neto
        Me.igv = igv
        Me.percepcion = percepcion

        Me.ds = dt
    End Sub

    Sub iniciar()
        If tipo = "P" Then
            Dim reporte As New rptDocumento1

            reporte.SetDataSource(ds)

            reporte.SetParameterValue("@PEDIDO", codigoPedido)
            reporte.SetParameterValue("@Cliente", "(" & codigoCliente & ") " & nombreCliente)
            reporte.SetParameterValue("@CondVenta", condicionVenta)
            reporte.SetParameterValue("@Fecha", fecha)
            reporte.SetParameterValue("@Marca", IIf(marca Is Nothing, "", marca))
            reporte.SetParameterValue("@Moneda", moneda)
            reporte.SetParameterValue("@Agencia", agencia)
            reporte.SetParameterValue("@Observacion", observaciones)
            reporte.SetParameterValue("@Direccion", direccion)

            reporte.SetParameterValue("@Neto", Format(Val(neto), "##,##0.00"))
            reporte.SetParameterValue("@Igv", Format(Val(igv), "##,##0.00"))
            reporte.SetParameterValue("@Subtotal", Format(Val(neto + igv), "##,##0.00"))
            reporte.SetParameterValue("@Percepcion", Format(Val(percepcion), "##,##0.00"))
            reporte.SetParameterValue("@Total", Format(Val(CDec(neto) + CDec(igv) + CDec(percepcion)), "##,##0.00"))

            Me.crvDocumento.ReportSource = reporte
        ElseIf tipo = "CO" Then
            Dim reporte As New rptDocumento2

            reporte.SetDataSource(ds)

            Dim codigo As String = "0000000" & codigoPedido
            reporte.SetParameterValue("@Cotizacion", codigo.Substring(codigo.Length - 6, 6))
            reporte.SetParameterValue("@Fecha", FormatDateTime(Date.Now.ToString("dd/MM/yyyy"), DateFormat.LongDate))
            reporte.SetParameterValue("@Contacto", nombreCliente)
            reporte.SetParameterValue("@Direccion", direccion)
            reporte.SetParameterValue("@Observacion1", observaciones)
            reporte.SetParameterValue("@Ruc", ruc)

            reporte.SetParameterValue("@Neto1", Format(Val(neto), "##,##0.00"))
            reporte.SetParameterValue("@Igv1", Format(Val(igv), "##,##0.00"))
            reporte.SetParameterValue("@Subtotal1", Format(Val(neto + igv), "##,##0.00"))
            reporte.SetParameterValue("@Percepcion1", Format(Val(percepcion), "##,##0.00"))
            reporte.SetParameterValue("@Total1", Format(Val(CDec(neto) + CDec(igv) + CDec(percepcion)), "##,##0.00"))

            Me.crvDocumento.ReportSource = reporte
        End If
    End Sub

    Private Sub frmImpresionDocumento_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        iniciar()
    End Sub

End Class